package com.github.freegeese.maven.plugin.autocode.demo.base;

import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by Administrator on 2017/4/12.
 */
public interface TreeableMapper<E, ID> extends SortableMapper<E, ID> {
    /**
     * 查询同级第一个节点
     *
     * @param target
     * @return
     */
    E selectFirst(E target);

    /**
     * 查询同级最后一个节点
     *
     * @param target
     * @return
     */
    E selectLast(E target);


    /**
     * 获取子节点
     *
     * @param parent
     * @param deep
     * @return
     */
    List<E> selectChildren(@Param("entity") E parent, @Param("deep") boolean deep);
}
